Academic Year/course:
2023/24
30322 - Network and Service Programming
Syllabus Information
Academic year:
2023/24
Subject:
30322 - Network and Service Programming
Faculty / School:
110 - Escuela de Ingeniería y Arquitectura
Degree:
330 - Complementos de formación Máster/Doctorado
438 - Bachelor's Degree in Telecommunications Technology and Services Engineering
581 - Bachelor's Degree in Telecommunications Technology and Services Engineering
ECTS:
6.0
Year:
438 - Bachelor's Degree in Telecommunications Technology and Services Engineering: 3
330 - Complementos de formación Máster/Doctorado: XX
581 - Bachelor's Degree in Telecommunications Technology and Services Engineering: 2
Semester:
Second semester
Subject type:
581 - Compulsory
438 - Compulsory
330 - ENG/Complementos de Formación
Module:
---
1. General information
The subject aims to teach the student to design software applications in which several processes must run simultaneously and synchronize. The paradigms of shared memory and message passing are studied, requiring in the latter that multiple distributed processes communicate through a communication network. Abstract concepts are presented so that the student learns to recognize designs, architectures and communication patterns, without relying on specific technologies. The student will learn the necessary techniques to develop services in the network, from low level techniques for more efficient applications, to high level techniques for complex distributed applications.
The objectives and approaches of the subject are aligned with the following SDGs of the 2030 Agenda: target 8.2 of goal 8 goal 8, targets 7.3 and 7.b of Goal 7, targets 6.4 and 6.5 of Goal 6 and targets 9.1, 9.5 and 9.c of Goal 9.
2. Learning results
In order to pass this subject, the students shall demonstrate they has acquired the following results:
-
Know the problems generated by the concurrent access to data and resources, as well as the classic methods of communication between processes.
-
Know the characteristics of distributed systems, the challenges they pose and the solutions that have been proposed for them.
-
Know the higher layers of the architecture of grid-based computing, and more specifically the paradigms and abstractions that support service computing.
-
Have the ability to perform programs with concurrent and/or distributed and event-driven features.
-
Correctly pose the problem from the proposed statement and identify the options for its resolution. Apply the appropriate solving method and identify the correctness of the solution.
-
Identify, model and pose problems from open situations. Explore and apply alternatives for its resolution. Handles approximations.
-
Know and use in an autonomous and correct way the tools, instruments and software applications available in the laboratories and correctly perform the analysis of the collected data.
-
Develop the ability to work as a team to carry out the designs and configurations considered, sharing the workload to face complex problems, exchanging information among different groups, in a coordinatedand organized way.
3. Syllabus
Concurrent Programming
-
Introduction to Concurrency
-
Motivation
-
Mutual exclusion and synchronization concepts
-
Properties of concurrent programs: security, liveliness, priority
-
Notion Process /Thread
-
Synchronization Mechanisms between processes
-
Mutual exclusion algorithms
-
Traffic lights
-
Mutual and partial exclusion problems
Distributed Systems
-
Introduction to distributed systems
-
Software Architectures
-
Communication Networks: TCP/IP architecture
-
Process to process communications: TCP and UDP Socket Interface
-
Synchronous and asynchronous channels and message passing
-
Client/Server Applications (Stateful and Stateless Server)
-
Introduction to Middleware technologies
4. Academic activities
The student's dedication to achieve the learning results in this subject is estimated in 150 hours, distributed as follows:
-
approximately 56 hours of classroom activities (theory classes, problems and laboratory practice).
-
91 hours of effective personal study (study of notes and texts, problem solving, class and practical preparation, program development).
-
3 hours of final written exam.
The schedule of exams and due dates will be announced well in advance.
5. Assessment system
The subject will be evaluated as follows:
-
Practical laboratory work (30% of the grade). The practical work, consisting of the presentation of exercises carried out using the computer, will be evaluated continuously, assessing the quality of the design and compliance with the specifications.
-
Written exam (70% of the grade, minimum 4 out of 10). The written exam will cover questions and problems similar to those presented in the classroom and laboratory sessions. The quality and clarity of the answers will be valued, as well as the solution strategies.
A grade of 5 out of 10 or higher is required to pass.
In case of not passing the subject in this way, students will have the opportunity to pass it by means of a single global test in both official exams, corresponding to the written exam, with a grade equal to or higher than 5 out of 10.
Thus, the final grade for the subject will be calculated as follows:
Max(written exam, written exam*0,7 + practical work*0,3) if written exam > 4.0
If the grade of the written exam is lower than 4.0, the final grade will be the minimum between 4.0 and the weighted result of the corresponding parts.